From 797f030cf619ecea77f3a6738932222a181fc6bf Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 13 Dec 2008 07:59:58 +0000 Subject: [PATCH] Handle separate append/set for rows. Patch by Li Yuan * gtk/gtkiconview.c (gtk_icon_view_accessible_model_row_changed): Handle separate append/set for rows. Patch by Li Yuan svn path=/trunk/; revision=21884 --- ChangeLog | 7 +++++++ gtk/gtkiconview.c | 30 +++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a12ea39ee2..0aac0645c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-12-13 Matthias Clasen + + Bug 549251 – GTK icon view accessible issue. + + * gtk/gtkiconview.c (gtk_icon_view_accessible_model_row_changed): + Handle separate append/set for rows. Patch by Li Yuan + 2008-12-13 Matthias Clasen Bug 556839 – Crash when opening a link diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index f22f70b78b..8b095997f3 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -8872,11 +8872,39 @@ static void gtk_icon_view_accessible_model_row_changed (GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter, - gpointer user_data) + gpointer user_data) { AtkObject *atk_obj; + gint index; + GtkWidget *widget; + GtkIconView *icon_view; + GtkIconViewItem *item; + GtkIconViewAccessible *a11y_view; + GtkIconViewItemAccessible *a11y_item; + gchar *name, *text; atk_obj = gtk_widget_get_accessible (GTK_WIDGET (user_data)); + a11y_view = GTK_ICON_VIEW_ACCESSIBLE (atk_obj); + index = gtk_tree_path_get_indices(path)[0]; + a11y_item = gtk_icon_view_accessible_find_child (atk_obj, index); + + widget = GTK_ACCESSIBLE (atk_obj)->widget; + icon_view = GTK_ICON_VIEW (widget); + item = a11y_item->item; + + name = gtk_icon_view_item_accessible_get_name (ATK_OBJECT (a11y_item)); + + if (!name || strcmp (name, "") == 0) + { + gtk_icon_view_set_cell_data (icon_view, item); + text = get_text (icon_view, item); + if (text) + { + gtk_text_buffer_set_text (a11y_item->text_buffer, text, -1); + g_free (text); + } + } + g_signal_emit_by_name (atk_obj, "visible-data-changed"); return; -- 2.30.2